<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>HTTP协议</title>
</head>
<body>
    



<script>
    // 通信协议：通信双方必须遵守的规则，采用约定的格式发送和接受信息
    // HTTP(超文本传输协议)：客户端与服务器之间实现网页内容传输必须遵守的协议
    // HTTP采用 请求/响应 的交互模型

    /* HTTP请求消息组成部分：
            请求行：请求方式 URL 协议版本
                   GET /api/getbook HTTP/1.1
            请求头部：描述客户端的基本信息
                Host:请求的服务器域名
                User-Agent:说明当前是什么类型的浏览器
                Content-Type:描述发送到服务器的数据格式
                Accept:描述客户端能接收什么类型的返回内容
                Accept-Language:客户端期望接受哪种人类语言的文本
            空行：表示请求头部结束，用来分割请求头部和请求体
            请求体(FormData)；只有POST请求有请求体，GET请求没有请求体
    */

    /* HTTP响应消息组成部分:
            状态行：协议版本 状态码 状态码描述
                    HTTP/1.1 200 OK
            响应头部：描述服务器的基本信息
                X-Powered-By:服务器使用的框架
                Content-Type:响应的数据格式
                Date:响应发生的时间
            空行：表示响应头部结束，用来分割响应头部和响应体
            响应体(response)：服务器响应给客户端的资源内容
    */

    /* 请求方法：表明要对服务器上的资源进行的操作
            GET：(查询)请求获得服务器资源
            POST；(增加)向服务器提交资源
            PUT：(修改)向服务器提交资源
            DELETE：(删除)请求服务器删除指定资源
            HEAD
            OPTIONS
            CONNECT
            TRACE
            PATCH
    */

    /* 响应状态码：
            1**：信息，服务器收到请求，需要请求者继续操作(不常用)
            2**：成功，操作成功接收并处理
            3**：重定向，需要进一步操作完成请求
            4**：客户端错误，请求包含语法错误，或无法完成请求
            5**： 服务器错误，服务器处理请求时错误

            200:OK  请求成功，一般用于GET和POST
            201:Created  已创建，请求并创建了新资源，用于POSt或PUT

            301:Moved Permanently  永久移动，请求资源被永久移到新的URL，返回信息会包含新的URL，浏览器自动定向到新URL
            302:Found  临时移动，资源只是临时被移动，客户端应继续使用原URL
            304:Not Modified  未修改，请求的资源未修改，响应中不含响应体，通常客户端会从缓存中访问资源

            400:Bad Request  语义有误或参数有误
            401:Unauthorized  请求需要用户验证(有权限)
            403:Forbidden  服务器拒绝执行
            404:Not Found  服务器无法根据请求找到资源
            408:Request Timeout  请求超时，服务器等待客户端发送请求时间过长

            500:Internal Server Error  服务器内部错误，无法完成请求
            501:Not Implemented  服务器不支持该请求方法(GET,HEAD请求是每个服务器必须支持的)
            503:Service Unavailable  超载或系统维护，服务器暂时无法处理请求
    */
</script>

</body>
</html>